<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    // `JS`对象多态性是与生俱来的：同一操作作用于不同的对象上面，可以产生不同的解释和不同的执行结果，
    // 也就是说，给不同的对象发送同一个消息时，这些对象会根据这个消息分别给出不同的反馈。

    // {
    //     const Box = function(){
    //
    //     }
    //     Box.prototype.render = function(){
    //         console.log("box->render");
    //     }
    //     const Desk = function(){
    //
    //     }
    //     Desk.prototype.render = function(){
    //         console.log("desk->render");
    //     }
    //     const box = new Box();
    //     const desk = new Desk();
    //     box.render();
    //     desk.render();
    // }

    {
        function Cat(){

        }
        function Dog(){

        }
        function fn(v){
            if(v instanceof Cat){
                console.log("喵喵");
            }else if(v instanceof Dog){
                console.log("汪汪");
            }
        }
        const obj = new Cat();
        const obj2 = new Dog();
        fn(obj);
        fn(obj2);
    }
</script>
</html>